home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 22
/
Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso
/
Aminet
/
dev
/
e
/
amigae33a.lha
/
E_v3.3a
/
Src.lha
/
Src
/
Various
/
breukfind.e
< prev
next >
Wrap
Text File
|
1996-11-04
|
806b
|
36 lines
/* find breuk
try: 0.14159 -> 1/7 (22/7 = pi)
try: 0.618034 -> fibonacci
try: 0.1234568 -> 10/81
*/
PROC main()
DEF br[20]:STRING,b,max=1,a,best=2.0,bst,bsta,d,s[20]:STRING,t[20]:STRING,u[20]:STRING
b:=RealVal(arg)
WriteF('Ctrl-C to stop searching for \s ...\n',RealF(s,b,7))
WHILE CtrlC()=FALSE
bst:=2.0
FOR a:=0 TO max
d:=dist(a!/(max!),b)
IF !d<bst
bst:=d
bsta:=a
ENDIF
ENDFOR
d:=dist(bsta!/(max!),b)
IF !d<best
best:=d
WriteF('best sofar: \d\t/ \d,\tdistance \s .. \s = \s\n',bsta,max,RealF(s,b,7),RealF(t,bsta!/(max!),7),RealF(u,best,7))
IF !best=0.0
WriteF('best possible reached...\n')
RETURN
ENDIF
ENDIF
max++
ENDWHILE
ENDPROC
PROC dist(a,b) IS Abs(!a-b*10000000.0!)!/10000000.0